package de.mnit.basis.fehler;

import de.mnit.basis.fehler.programm.F_Zahl;


/**
 * @author Michael Nitsche
 */
public class H_Zahl {

	public static F_Zahl debugFehler(Object... o) {
		return F_Zahl.neu(Fehler.text_debug, o);
	}

	public static F_Zahl da_Ungueltig(double zahl) {
		return F_Zahl.neu("Zahl ungültig",zahl);
	}

	public static void wenn_InListe(double zahl, double... ungueltig) {
		for(double d : ungueltig)
			if(d == zahl)
				F_Zahl.neu("Zahl ungültig",zahl);
	}

	public static void wenn_NichtInListe(double zahl, double... gueltig) {
		for(double d : gueltig)
			if(d == zahl) return;
		F_Zahl.neu("Zahl ungültig", zahl, gueltig);
	}

	public static void wenn_Gleich(double zahl, double ungueltig) {
		if(ungueltig == zahl)
			F_Zahl.neu("Zahl ungültig", zahl);
	}

	public static void wenn_Null(double zahl)   { wenn_InListe(zahl, 0); }

	public static void wenn_Ausserhalb(double min, double max, double... werte) {
		for(double d : werte)
			if(d>max || d<min)
				F_Zahl.neu("Zahl ausserhalb des gültigen Bereichs", "Zahl: "+d,"Min: "+min,"Max: "+max);
	}

	public static void wenn_ZuKlein(double min, double wert) {
		if(wert<min)
			F_Zahl.neu("Zahl ist zu klein","Wert: "+wert,"Min: "+min);
	}

	public static void wenn_ZuGross(double max, double wert) {
		if(wert>max)
			F_Zahl.neu("Zahl ist zu gross","Wert: "+wert,"Max: "+max);
	}

	public static void wenn_Ausserhalb(double absolut_max, double wert) {
		wenn_Ausserhalb(-Math.abs(absolut_max), Math.abs(absolut_max), wert);
	}

	public static void wenn_Nicht(double soll, double... ist) {
		for(int i=0; i<ist.length; i++)
			if(soll != ist[i])
				F_Zahl.neu("Zahl "+(i+1)+" ungültig","Ist: "+ist[i],"Soll: "+soll);
	}

}
